﻿using LinqKit;
using Management.Auxiliary;
using System.Linq;

namespace Management.Core.Breaked
{
    public class BreakedManager:BaseManager<Breaked>
    {
        public Paging<Breaked> FindPageList(Paging<Breaked> pagingBreaked, int? breakedId, int? order)
        {
            //查询表达式
            var _where = PredicateBuilder.New<Breaked>(true);
            if (breakedId != null && breakedId > 0) _where = _where.And(u => u.BreakedID == breakedId);

            //排序
            OrderParam _orderParam;
            switch (order)
            {
                case 0://ID升序
                    _orderParam = new OrderParam() { PropertyName = "BreakedID", Method = OrderMethod.ASC };
                    break;
                case 1://ID降序
                    _orderParam = new OrderParam() { PropertyName = "BreakedID", Method = OrderMethod.DESC };
                    break;
                case 2://创建时间降序
                    _orderParam = new OrderParam() { PropertyName = "Created_at", Method = OrderMethod.ASC };
                    break;
                case 3://创建时间升序
                    _orderParam = new OrderParam() { PropertyName = "Created_at", Method = OrderMethod.DESC };
                    break;
                case 4://修改时间升序
                    _orderParam = new OrderParam() { PropertyName = "Updated_at", Method = OrderMethod.ASC };
                    break;
                case 5://修改时间降序
                    _orderParam = new OrderParam() { PropertyName = "Updated_at", Method = OrderMethod.DESC };
                    break;
                default://ID降序
                    _orderParam = new OrderParam() { PropertyName = "BreakedID", Method = OrderMethod.DESC };
                    break;
            }

            pagingBreaked.Items = Repository.FindPageList(pagingBreaked.PageSize, pagingBreaked.PageIndex, out pagingBreaked.TotalNumber, _where, _orderParam).ToList();
            return pagingBreaked;
        }

    }
}
